package com.app.lzbank.entity;

import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;

import java.math.BigDecimal;

@Data
public class LzBankPayCallbackNotification {

    @JSONField(name = "SYS_RESP_CODE")
    private String sysRespCode; // 返回状态码，000000表示成功

    @JSONField(name = "trans_type")
    private String transType; // 交易类型，0001:支付；0002：退款

    @JSONField(name = "trade_state")
    private String tradeState; // 交易状态，支付结果：0—成功   1—失败  4：也是成功（到货结算）

    @JSONField(name = "refund_status")
    private String refundStatus; // 退款状态，退款通知时存在，退款结果：1-成功；非1：失败

    @JSONField(name = "out_refund_no")
    private String outRefundNo; // 商户退款订单号，退款通知时存在

    @JSONField(name = "refund_id")
    private String refundId; // 易付退款流水号，退款通知时存在

    @JSONField(name = "refund_fee")
    private String refundFee; // 退款金额，退款通知时存在

    @JSONField(name = "pay_info")
    private String payInfo; // 支付结果信息，支付成功时为空

    @JSONField(name = "trans_channel")
    private String transChannel; // 支付渠道，Pc： pc端； mb： 移动端；ATM：ATM端；STM：自助缴费机；WX：微信端

    @JSONField(name = "partner")
    private String partner; // 商户号，由开放平台统一分配的商户号

    @JSONField(name = "subpartner")
    private String subpartner; // 二级商户号，二级商户必须送商户号和二级商户号

    @JSONField(name = "out_trade_no")
    private String outTradeNo; // 商户订单号

    @JSONField(name = "transaction_id")
    private String transactionId; // 系统支付流水号

    @JSONField(name = "bank_type")
    private String bankType; // 付款服务方，银行类型，默认为“DEFAULT”－百合易付

    @JSONField(name = "bank_transno")
    private String bankTransno; // 银行或者第三方流水号

    @JSONField(name = "total_fee")
    private BigDecimal totalFee; // 总金额，单位为元

    @JSONField(name = "fee_type")
    private String feeType; // 币种，现金支付币种,目前只支持人民币,默认值是1；人民币

    @JSONField(name = "notify_id")
    private String notifyId; // 通知ID，支付结果通知id，商户收到支付结果时，通过通知id查询接口验证信息是否来自百合易付

    @JSONField(name = "time_end")
    private String timeEnd; // 支付完成时间，格式为yyyyMMdd hh：mm：ss

    @JSONField(name = "transport_fee")
    private BigDecimal transportFee; // 物流费用，单位为元

    @JSONField(name = "product_fee")
    private BigDecimal productFee; // 物品费用，单位为元

    @JSONField(name = "discount")
    private BigDecimal discount; // 折扣价格，单位为元

    @JSONField(name = "buyer_alias")
    private String buyerAlias; // 买家别名，对应买家账号的一个加密串

    @JSONField(name = "payService")
    private String payService; // 支付服务方

    @JSONField(name = "payTransNo")
    private String payTransNo; // 支付服务方流水号
}